この関数は、非永続モードでXLAを処理する場合にのみ有効です。
ttXlaConfigBuffer関数を使用すると、XLAステージング・バッファのサイズを設定および取得できます。XLAは、XLAステージング・バッファでトランザクション・ログから取得した更新ログをステージングし、アプリケーションでの読取りを可能にします。
newSizeに値を指定すると、ステージング・バッファの新しいサイズが*newSizeから取得されます。サイズが0(ゼロ)の場合は、ステージング・バッファが未割当てまたはステージング・バッファの割当て禁止を意味します。*oldSizeには、ステージング・バッファの以前のサイズが返されます。また、サイズが以前に設定されていない場合は0(ゼロ)が返されます。
newSizeを指定しない場合は、ステージング・バッファの現在のサイズが*oldSizeに返されます。
ステージング・バッファ・サイズの変更はすぐに実行されます。1つのデータ・ストアに対して設定できるバッファは1つのみです。バッファのサイズが変更されると、ttXlaNextUpdateへの以前のコールによって返された値は無効になります。
この関数の使用方法については、「ステージング・バッファの構成」を参照してください。
SQLRETURN ttXlaConfigBuffer(ttXlaHandle_h handle,
out SQLUBIGINT *oldSize,
SQLUBIGINT *newSize)
パラメータ | 型 | 説明 |
handle | ttXlaHandle_h | データ・ストアのトランザクション・ログ・ハンドル。 |
oldSize | out SQLUBIGINT * | ステージング・バッファの現在のサイズ。 |
newSize | SQLUBIGINT * | ステージング・バッファの新しいサイズ。 |
コールが成功すると、SQL_SUCCESSが返されます。返されない場合は、ttXlaErrorを使用してエラーをレポートします。
この例では、次の宣言を想定しています。
SQLUBIGINT currentSize, requestedSize;
ステージング・バッファのサイズを変更せずにその現在のサイズを確認するには、次のコールを実行します。
rc = ttXlaConfigBuffer(xlahandle, ¤tSize, NULL);
ステージング・バッファのサイズを新しいサイズ(400,000バイト)に設定するには、次のコールを実行します。
requestedSize = 400000;
rc = ttXlaConfigBuffer(xlahandle, NULL, &requestedSize);
必要に応じて、これらの2つのタイプのコールを組み合せて、現在のサイズの記録と新しいサイズの設定を同時に行うことができます。
最後に、ステージング・バッファを一括削除するには、次のコールを実行します。
requestedSize = 0;
rc = ttXlaConfigBuffer(xlahandle, NULL, &requestedSize);
また、install_dir/demo/xla/xla.c
ファイル内のmain()関数も参照してください。
バッファのサイズを変更すると現在のバッファがコピーされるため、パフォーマンスが大幅に低下する場合があります。より小さいサイズをステージング・バッファに指定し、その小さいサイズに現在の内容を格納できない場合、ステージング・バッファのサイズは変更されず、エラーが返されます。